package com.bitoon.basketdudes.web;

import com.bitoon.basketdudes.web.commons.RankingCommon;
import com.bitoon.basketdudes.web.datos.DatosRanking;
import com.bitoon.basketdudes.web.datos.InfoCabeceraXHR;
import com.bitoon.basketdudes.web.jpa.Usuario;
import com.bitoon.basketdudes.web.jpa.Equipo;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.ValueStack;
import org.apache.log4j.Logger;
import java.util.List;

public class Ranking extends BaseAction {

    private List<DatosRanking> ranking;
    private InfoCabeceraXHR cabecera;
    private String paginacion;
    private Logger log = Logger.getLogger(Ranking.class);

    public static int POSICIONES_FILA = 10;
    public static int HUECOS_LADO_PAGINA = 2; // Número de "huecos" a los lados de la página central ==> [1 2] 3 [4 5]

    public String execute() {

        ValueStack valueStack = ActionContext.getContext().getValueStack();
        if (valueStack.findValue("stackUserLogado") != null) {
            Usuario u = (Usuario)valueStack.findValue("stackUserLogado");
            //setListaEquiposMostrar(u.getEquipos());
        }

        // Datos del ranking

        int offset = 0;

        RankingCommon rc = new RankingCommon();
        setRanking(rc.listadoRankingGlobal(offset, POSICIONES_FILA));

        int posiciones = rc.totalPosicionesGlobal();
        int cuantos = (int)((posiciones-1)/POSICIONES_FILA)+1; // 20 elementos por pagina
        cabecera = new InfoCabeceraXHR();
        //setPaginacion(rc.damePaginacion(1, HUECOS_LADO_PAGINA, 1, cuantos));

        cabecera.setElementoInicial(offset+1);
        int elementoFinal = offset + POSICIONES_FILA;
        if (elementoFinal > posiciones) {
            elementoFinal = posiciones;
        }
        cabecera.setElementoFinal(elementoFinal);

        return SUCCESS;
    }

    public List<DatosRanking> getRanking() {
        return ranking;
    }

    public void setRanking(List<DatosRanking> ranking) {
        this.ranking = ranking;
    }

    public InfoCabeceraXHR getCabecera() {
        return cabecera;
    }

    public void setCabecera(InfoCabeceraXHR cabecera) {
        this.cabecera = cabecera;
    }

    public String getPaginacion() {
        return this.paginacion;
    }

    public void setPaginacion(String paginacion) {
        this.paginacion = paginacion;
    }

}


